package com.tanhua.server.controller;

import com.alibaba.fastjson.JSON;
import com.tanhua.domain.mongo.Answer;
import com.tanhua.server.service.TestSoulService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/testSoul")
@Slf4j
public class TestSoulController {

    @Autowired
    private TestSoulService testSoulService;

    @Autowired
    private RedisTemplate<String,String> redisTemplate;

    /**
     * 接口名称：测灵魂-问卷列表（学生实战）
     * 接口路径：GET/testSoul
     */
    @GetMapping
    public ResponseEntity<Object> findByTestSoulList() {
        log.info("接口名称：测灵魂-问卷列表（学生实战）");
        return testSoulService.findByTestSoulList();
    }

    /** 不传报告id，说明还没测试，给端口一个提示就可以了 传了报告id 就说明已经答完题 可以查看报告 并且 发送解锁
     * 接口名称：测灵魂-提交问卷（学生实战） 填完报告后，然后解锁 主要是解锁 把报告存到redis中/mongodb中 key=testSoul_telephone+reportId 然后查看结果的时候拿出来分析
     * 接口路径：POST/testSoul answers	object []
     */
    @PostMapping
    public ResponseEntity<Object> submitSoulQuestion(@RequestBody Map<String,Object> map) {

        List<LinkedHashMap<String,String>> answerList = (List<LinkedHashMap<String,String>>) map.get("answers"); // 这个是LinkedList 转成json再转成ArrayList
        System.out.println("answerList = " + answerList);


        return testSoulService.submitSoulQuestion(answerList);

    }

    /**
     * 接口名称：测灵魂-查看结果（学生实战）
     * 接口路径：GET/testSoul/report/:id
     */
    @GetMapping("/report/{id}")
    public ResponseEntity<Object> readReport(@PathVariable("id") String id) { //不行的话就用Integer
        // 查看是否拿到id值
        System.out.println(id);

        return testSoulService.readReport(id);

    }
}
